package vip.xiaonuo.megvii.captures.receive.http;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import vip.xiaonuo.megvii.captures.listener.AiBoxActivePushDataPublisher;
import vip.xiaonuo.modular.megviipushdata.entity.MegviiPushData;
import vip.xiaonuo.modular.megviipushdata.service.MegviiPushDataService;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

/**
 * 该类是接收盒子主动推送的参数
 * 先保存，不处理
 * 后续再开一个线程去处理数据
 */
@RestController
@Slf4j
public class CapturesReceiverController {

    @Resource
    private MegviiPushDataService pushDataService;

    @Resource
    private AiBoxActivePushDataPublisher publisher;

    @PostMapping("/captures")
    private void receive(@RequestBody Object obj , HttpServletRequest request){
        // 先保存上报数据，后面再单独开一个线程去处理数据转换
        MegviiPushData data = new MegviiPushData();
        data.setStatus(0);
        data.setDelFlag(0);
        data.setValue(JSON.toJSONString(obj));
        pushDataService.save(data);
        log.info("AI设备主动上报的数据 : {}", data.getId());

        // 发布事件，由监听程序去处理
        publisher.pushEvent(data);
    }

}
